<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // function person(name,age){
        //     this.name = name;
        //     this.name = age;
        // }

        // person.prototype.tostring = function(){
        //     return "person[name="+this.name+",age="+this.age+"]"
        // };

        // var per1 = new person("孙悟空",18);
        // var per2 = new person("间距",28);
        // var per3 = new person("落料",8);
        // var per4 = new person("扣扣",16);
        // var per5 = new person("命名",38);

        // var perArr = [per1,per2,per3,per4,per5];

        // function getAdult(arr){
        //      var newArr = [];
        //     for(var i = 0;i<arr.length;i++){
        //         var p = arr[i];
        //         if(p.age>17){
        //         newArr.push(p);
        //         }
        //     }

        //     return newArr;

        // }
        // var result = getAdult(perArr);
        // console.log(result);




            // var arr = [1,2,3,2,1,3,4,2,5];
       
            // for(var i=0;i<arr.length;i++){
            //     for(var j=i+1;j<arr.length;j++){
            //         if(arr[i] == arr[j]){
            //              arr.splice(j,1);
            //              j--;
            //         }
            //     }
            // }
            // console.log(arr);

// 从数组中删除重复的元素，当两元素相同时，就会删掉j元素，删除后，后边的元素会自动补位
// 此时将不会再比较补位的这个元素，需要再比较一次j所在位置元素，使j自减



// 在sort()添加一个回调函数，来指定排序规则：

                // arr = [5,4,5,6,4,3,2,2,8];
                // arr.sort(function(a,b){
                //     if(a > b){
                //         return 1;
                //     }else if(a < b){
                //         return -1;
                //     }else{
                //         return 0;
                //     }
                // })
                // console.log(arr);

// 回调函数中需要定义两个形参，游览器将会分别使用数组中的元素作为实参去调用回调函数
// 游览器会根据回调函数的返回值来决定元素的顺序，如果返回值大于0，则会交互位置，如果返回值小于0，
// 则元素位置不变，如果返回一个0，也不交换位置，当a>b时，如果想要从小往大排，就返回1


//                 arr = [5,4,5,6,4,3,2,2,8];
//                 arr.sort(function(a,b){
//                     return a - b;
//                 })
//                 console.log(arr);

// 升序排列：
//                 return a - b;

// 降序排列： 
//                 return b - a

// 更方便，直接使用，得出结果



// 利用时间戳来测试代码执行的性能：
        // var start = Date.now();
        // for(var i=0 ;i<100 ;i++){
        //     console.log(i);
        // }
        // var end = Date.now();
        // console.log("执行了"+(end-start)+"毫秒");


// 生成0-x的随机数:Math.round(Math.random()*x
                var arr=[];
//             for(var i=0 ; i<100; i++){
//                 console.log(Math.round(Math.random()*10))
//             }
// 这个生成的是0-10的随机数




// 生成一个x-y直接的随机数
//             console.log(Math.round(Math.random()*(y-x)+x



// 生成1-10的随机数
//             console.log(Math.round(Math.random()*9+1



对象是所有元素类型的基础,js中数值的元素可以类型不同

// 数组的创建:

// 字面量创建：
//     var arr= [1,2,3]
// 构造函数创建：
// var arr=new Array(1,2,3)
// var arr=Array(1,2,3)

// 对象创建：
// var arr = new Object([1,2,3])
// console.log(arr);

   


// 字面量创建：
//   var arr=[1,,3,undefined,5];
  
        // var arr=[1,,3,undefined,5];
        // for(var i=0;i<5;i++){
        //     if(!(i in arr))continue;
        //     console.log(arr[i]);
        // }

// 想要打印undefined确不想打印空数组，可以用in判断下标在数组中是否存在，
// 利用continue跳过循环，不想存在undefined，可以用if进行判断，当元素等于undefined时进行跳过


//   空元素就是下标没有对应的值，所有可以通过下标in数组这种方式进行判断
    
    
    
    
//  构造函数创建：
 
//  如果构造函数的元素数量大于1个，则多余的元素都是这个数组的元素
// 构造函数中的参数只有一个时，这一个就是数组的长度


//  如果仅有一个参数，并且是数值类型，但并不是正整数时，就会报错

//   如果仅有一个参数，但这个参数不是数值型，则会将这个数组放在弟0位
    
            // arr.length 不能小于0，或者为负数，必须是正整数，会报错
    

//   复制整个数组：          
        //     var arr1=[];
        // for(var i=0;i<arr.length;i++){
        //     arr1[i]=arr[i];
        // }

// 经过复制的数组，修改arr的属性值，arr1是不会改变的，但直接赋值的数组就会改变属性值

















//    throw new Eroor() 抛出错误，中断后续代码的执行 
    
//     给数组尾部一旦条件元素，arr.length就会自动重设
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    </script>
</body>
</html>